#ifndef __GRIDDATA_H
#define __GRIDDATA_H

#include <gtkmm/table.h>
#include <gtkmm/eventbox.h>
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/image.h>


class gridData
{
	public:
		int width;
		int height;
		int* pmap;
		Gtk::EventBox** pcells;
		bool* pcalls;
		Gtk::Table* grid;
		bool cellSpacing;
		Gtk::ScrolledWindow* scrollW;
		int startX;
		int startY;
		int goalX;
		int goalY;
		int* initialValueCells;

		Glib::ustring ROAD_IMAGE;
		Glib::ustring GRASS_IMAGE;
		Glib::ustring TRAIL_IMAGE;
		Glib::ustring WALL_IMAGE;
		Glib::ustring START_IMAGE;
		Glib::ustring GOAL_IMAGE;

		Glib::ustring HPATH1_IMAGE;
		Glib::ustring VPATH1_IMAGE;
		Glib::ustring LUPATH1_IMAGE;
		Glib::ustring LDPATH1_IMAGE;
		Glib::ustring RUPATH1_IMAGE;
		Glib::ustring RDPATH1_IMAGE;
		Glib::ustring HPATH2_IMAGE;
		Glib::ustring VPATH2_IMAGE;
		Glib::ustring LUPATH2_IMAGE;
		Glib::ustring LDPATH2_IMAGE;
		Glib::ustring RUPATH2_IMAGE;
		Glib::ustring RDPATH2_IMAGE;

		Glib::ustring HPATH1_GRASS_IMAGE;
		Glib::ustring VPATH1_GRASS_IMAGE;
		Glib::ustring LUPATH1_GRASS_IMAGE;
		Glib::ustring LDPATH1_GRASS_IMAGE;
		Glib::ustring RUPATH1_GRASS_IMAGE;
		Glib::ustring RDPATH1_GRASS_IMAGE;
		Glib::ustring HPATH2_GRASS_IMAGE;
		Glib::ustring VPATH2_GRASS_IMAGE;
		Glib::ustring LUPATH2_GRASS_IMAGE;
		Glib::ustring LDPATH2_GRASS_IMAGE;
		Glib::ustring RUPATH2_GRASS_IMAGE;
		Glib::ustring RDPATH2_GRASS_IMAGE;

		Glib::ustring HPATH1_TRAIL_IMAGE;
		Glib::ustring VPATH1_TRAIL_IMAGE;
		Glib::ustring LUPATH1_TRAIL_IMAGE;
		Glib::ustring LDPATH1_TRAIL_IMAGE;
		Glib::ustring RUPATH1_TRAIL_IMAGE;
		Glib::ustring RDPATH1_TRAIL_IMAGE;
		Glib::ustring HPATH2_TRAIL_IMAGE;
		Glib::ustring VPATH2_TRAIL_IMAGE;
		Glib::ustring LUPATH2_TRAIL_IMAGE;
		Glib::ustring LDPATH2_TRAIL_IMAGE;
		Glib::ustring RUPATH2_TRAIL_IMAGE;
		Glib::ustring RDPATH2_TRAIL_IMAGE;
};

namespace Pfv {
	const int ROAD_CELL = 1;
	const int GRASS_CELL = 2;
	const int TRAIL_CELL = 3;
	const int WALL_CELL = 4;
	const int START_CELL = 5;
	const int GOAL_CELL = 6;

	const int HPATH1_CELL = 9;
	const int HPATH2_CELL = 10;
	const int VPATH1_CELL = 11;
	const int VPATH2_CELL = 12;
	const int LUPATH1_CELL = 13;
	const int LUPATH2_CELL = 14;
	const int LDPATH1_CELL = 15;
	const int LDPATH2_CELL = 16;
	const int RUPATH1_CELL = 17;
	const int RUPATH2_CELL = 18;
	const int RDPATH1_CELL = 19;
	const int RDPATH2_CELL = 20;

	const int HPATH1_GRASS_CELL = 21;
	const int HPATH2_GRASS_CELL = 22;
	const int VPATH1_GRASS_CELL = 23;
	const int VPATH2_GRASS_CELL = 24;
	const int LUPATH1_GRASS_CELL = 25;
	const int LUPATH2_GRASS_CELL = 26;
	const int LDPATH1_GRASS_CELL = 27;
	const int LDPATH2_GRASS_CELL = 28;
	const int RUPATH1_GRASS_CELL = 29;
	const int RUPATH2_GRASS_CELL = 30;
	const int RDPATH1_GRASS_CELL = 31;
	const int RDPATH2_GRASS_CELL = 32;

	const int HPATH1_TRAIL_CELL = 33;
	const int HPATH2_TRAIL_CELL = 34;
	const int VPATH1_TRAIL_CELL = 35;
	const int VPATH2_TRAIL_CELL = 36;
	const int LUPATH1_TRAIL_CELL = 37;
	const int LUPATH2_TRAIL_CELL = 38;
	const int LDPATH1_TRAIL_CELL = 39;
	const int LDPATH2_TRAIL_CELL = 40;
	const int RUPATH1_TRAIL_CELL = 41;
	const int RUPATH2_TRAIL_CELL = 42;
	const int RDPATH1_TRAIL_CELL = 43;
	const int RDPATH2_TRAIL_CELL = 44;
};

#endif